<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
<!-- 
    token
    计算机身份认证中是令牌，通俗讲叫暗号
    用于记录用户状态

    JWT
    JWT -> Json Web Token
    JWT是一种具体的token实现方式
    JWT是一种三段式加密字符串
    第一段，header头信息，是一个json对象，使用base64编码
    第二段，payload有效载荷，是一个json对象，使用base64编码
    第三段，signature签名，使用base64编码之后的header和payload，再加上加密口令，通过指定算法生成的哈希值，如 哈希值 = HS256(base64(header)+'.'+base64(payload),加密口令)

    在nodejs中使用JWT
    1.安装：npm i jsonwebtoken
    2.加载模块：let jwt = require('jsonwebtoken')
    3.生成token：let token = jwt.sign()
    4.验证token：jwt.verify()

    登录流程：
    1.前端发送登录请求
    2.后端接收登录请求
        接收请求参数，查询数据库
    3.登录成功时，生成token
    4.后端响应登录结果（包含token）
    5.前端接收响应结果
        将token保存在本地存储
        将登录结果反馈给用户
    6.登录之后的请求时，在请求头携带token发送到服务端
    7.后端接收请求，从请求头中获取token，并验证token是否有效
    8.后端将是否已登录响应给前端

    渲染页面：
    1.前端渲染
    是指服务端响应页面数据，前端完成html页面拼接

    2.服务端渲染（SSR）
    是指服务端根据页面数据，完成html页面拼接并返回给前端

    模板引擎
    将html模板和数据 编译成 完整的html页面
    art-template
 -->

</body>
</html>